package com.googlecode.gwtbb.client.shared.entity.forum;

import com.googlecode.gwtbb.client.shared.entity.properties.HasDescription;
import com.googlecode.gwtbb.client.shared.entity.properties.HasName;
import com.googlecode.gwtbb.client.shared.entity.properties.HasSnapDate;

import java.io.Serializable;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;

/**
 * @author Abraham Grief
 * @version $Id$
 * @since Apr 16, 2008
 */
public class ForumBase implements HasName, HasDescription, HasSnapDate, Serializable {
	public static final String FORUM_ID = "forumId";

	public static final List<String> PROPERTIES = Collections.unmodifiableList(Arrays.asList(
		FORUM_ID,
		NAME,
		DESCRIPTION,
		SNAP_DATE
	));

	protected Long forumId;
	protected String name;
	protected String description;
	protected boolean listed;
	protected boolean deleted;
	protected Date snapDate;

	public ForumBase() {
	}

	public ForumBase(Long forumId, String name, String description, boolean listed, boolean deleted, Date snapDate) {
		this.forumId = forumId;
		this.name = name;
		this.description = description;
		this.listed = listed;
		this.deleted = deleted;
		this.snapDate = snapDate;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public Long getForumId() {
		return forumId;
	}

	public void setForumId(Long forumId) {
		this.forumId = forumId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Date getSnapDate() {
		return snapDate;
	}

	public void setSnapDate(Date snapDate) {
		this.snapDate = snapDate;
	}

	public boolean isDeleted() {
		return deleted;
	}

	public void setDeleted(boolean deleted) {
		this.deleted = deleted;
	}

	public boolean isListed() {
		return listed;
	}

	public void setListed(boolean listed) {
		this.listed = listed;
	}
}
